using System;
using System.Collections.Generic;
using System.Text;
using LngT.Interfaces.DBUserRoles;
using System.Collections.ObjectModel;

namespace LngT.Interfaces
    {
    public interface IDatabase
        {
        int AddItem( IItem item );
        bool RemoveItem( int itemId );
        bool UpdateItem( int itemId, IItem newItem );
        IItem GetItem( int itemId );

        void AddDBUser( string userName, string password, IDBUserRole privileges );
        bool RemoveDBUser( string userName );
        IDBUserRole GetDBUserPrivileges( string userName, string password );
        bool SetDBUserPrivileges( string userName, IDBUserRole privileges );
        int GetUserID( string userName, string password );

        IEnumerable<IItem> GetItemIterator( IIterationAlgorithm algorithm );

        void AddItemResult( ItemResult result );

        string Name
            {
            get;
            set;
            }
        }
    }
